Media Playlist Construction for Virtual Environments

ABSTRACT

Embodiments of the invention provide techniques for generating song playlists for use in an immersive virtual environment. Generally, playlists may be generated based on stored music preference data. The music preference data may be generated by storing user interactions with specific songs. The user interactions may be associated with characteristics of the user&#39;s situational context within the virtual world. The music preference data may be indexed by song name, and/or by musical properties. Subsequently, the music preference data may be used to generate a playlist adapted to the user&#39;s current situation within the virtual world.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The field of the invention relates to immersive virtual environmentpresentation, specifically to generating music playlists within animmersive virtual environment.

2. Description of the Related Art

A virtual world is a simulated environment in which users may inhabitand interact with one another via avatars. Users may also interact withvirtual objects and locations of the virtual world. An avatar generallyprovides a graphical representation of an individual within the virtualworld environment. Avatars are usually presented to other users as twoor three-dimensional graphical representations of humanoids. Frequently,virtual worlds allow for multiple users to enter and interact with oneanother.

Virtual worlds may be persistent. A persistent world provides animmersive environment (e.g., a fantasy setting used as a setting for arole-playing game, or a virtual world complete with land, buildings,towns, and economies) that is generally always available, and worldevents happen continually, regardless of the presence of a given avatar.Thus, unlike more conventional online games or multi-user environments,the virtual world continues to exist, and plots and events continue tooccur as users enter (and exit) the virtual world.

Virtual worlds provide an immersive environment as they typically appearsimilar to the real world, with real world rules such as gravity,topography, locomotion, real-time actions, and communication.Communication may be in the form of text messages sent between avatars,but may also include real-time voice communication. While interactingwith the virtual world, users may be provided with a musical soundtrack.The musical soundtrack may be organized and arranged into playlists ofsongs.

SUMMARY OF THE INVENTION

One embodiment of the invention includes a method for generatingplaylists for use in a virtual environment. The method may generallyinclude: monitoring a user interacting with the virtual environmentthrough an avatar; in response to detecting a triggering event,determining one or more characteristics of a situational context of theavatar within the virtual environment; based on the determined one ormore characteristics, generating a playlist; and providing the user withone or more songs included in the playlist.

Another embodiment of the invention includes a computer-readable storagemedium including a program, which when executed on a processor performsan operation. The operation may generally include: monitoring a userinteracting with the virtual environment through an avatar; in responseto detecting a triggering event, determining one or more characteristicsof a situational context of the avatar within the virtual environment;based on the determined one or more characteristics, generating aplaylist; and providing the user with one or more songs included in theplaylist.

Another embodiment of the invention includes a system having a database,a processor, and a memory containing a program, which when executed bythe processor is configured to generate a playlist for a user of avirtual environment. The program may generally be configured to performthe steps of monitoring a user interacting with the virtual environmentthrough an avatar; in response to detecting a triggering event,determining one or more characteristics of a situational context of theavatar within the virtual environment; based on the determined one ormore characteristics, generating a playlist; and providing the user withone or more songs included in the playlist.

BRIEF DESCRIPTION OF THE DRAWINGS

So that the manner in which the above recited features, advantages andobjects of the present invention are attained and can be understood indetail, a more particular description of the invention, brieflysummarized above, may be had by reference to the embodiments thereofwhich are illustrated in the appended drawings.

It is to be noted, however, that the appended drawings illustrate onlytypical embodiments of this invention and are therefore not to beconsidered limiting of its scope, for the invention may admit to otherequally effective embodiments.

FIG. 1 is a block diagram that illustrates a client server view of anexemplary computing environment, according to one embodiment of theinvention.

FIG. 2 illustrates a user display for a user participating in a virtualworld, according to one embodiment of the invention.

FIG. 3 is a flow diagram illustrating a method for generating musicpreferences of a user of a virtual world, according to one embodiment ofthe invention.

FIG. 4 is a flow diagram illustrating a method for generating playlistsfor users of a virtual world, according to one embodiment of theinvention.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

A virtual world is a simulated environment in which users may berepresented by avatars. An avatar may be used by the user to “travel”through locations of the virtual world, such as virtual streets,buildings, rooms, etc. While in the virtual world, the user may beprovided with a musical soundtrack, which may be composed of playlistsof songs. Each playlist may include songs that are suited to particularmoods or actions of the user. For example, a user engaged in a businesstask within the virtual world may wish to listen to a playlist ofsubdued and unobtrusive songs. On the other, a user that isparticipating in a virtual sport may wish to listen to a playlist oflively songs.

However, in order to compose a playlist, a user may have to manuallyselect and arrange multiple songs. This process may be tedious andtime-consuming for the user. Once composed, a playlist may be static,meaning the songs included in the playlist will not change, unless theuser manually modifies the playlist. Thus, the user may grow tired oflistening to the same playlist repeatedly.

Embodiments of the invention provide techniques for generating songplaylists for use in an immersive virtual environment. Generally,playlists may be generated based on stored music preference data. Themusic preference data may be generated by storing user interactions withspecific songs. The user interactions may be associated withcharacteristics of the user's situational context within the virtualworld. The music preference data may be indexed by song name, and/or bymusical properties. Subsequently, the music preference data may be usedto generate a playlist adapted to the user's current situation withinthe virtual world.

In the following, reference is made to embodiments of the invention.However, it should be understood that the invention is not limited tospecific described embodiments. Instead, any combination of thefollowing features and elements, whether related to differentembodiments or not, is contemplated to implement and practice theinvention. Furthermore, in various embodiments the invention providesnumerous advantages over the prior art. However, although embodiments ofthe invention may achieve advantages over other possible solutionsand/or over the prior art, whether or not a particular advantage isachieved by a given embodiment is not limiting of the invention. Thus,the following aspects, features, embodiments and advantages are merelyillustrative and are not considered elements or limitations of theappended claims except where explicitly recited in a claim(s). Likewise,reference to “the invention” shall not be construed as a generalizationof any inventive subject matter disclosed herein and shall not beconsidered to be an element or limitation of the appended claims exceptwhere explicitly recited in a claim(s).

One embodiment of the invention is implemented as a program product foruse with a computer system. The program(s) of the program productdefines functions of the embodiments (including the methods describedherein) and can be contained on a variety of computer-readable storagemedia. Illustrative computer-readable storage media include, but are notlimited to: (i) non-writable storage media (e.g., read-only memorydevices within a computer such as CD-ROM disks readable by a CD-ROMdrive and DVDs readable by a DVD player) on which information ispermanently stored; and (ii) writable storage media (e.g., floppy diskswithin a diskette drive, a hard-disk drive or random-access memory) onwhich alterable information is stored. Such computer-readable storagemedia, when carrying computer-readable instructions that direct thefunctions of the present invention, are embodiments of the presentinvention. Other media include communications media through whichinformation is conveyed to a computer, such as through a computer ortelephone network, including wireless communications networks. Thelatter embodiment specifically includes transmitting information to/fromthe Internet and other networks. Such communications media, whencarrying computer-readable instructions that direct the functions of thepresent invention, are embodiments of the present invention. Broadly,computer-readable storage media and communications media may be referredto herein as computer-readable media.

In general, the routines executed to implement the embodiments of theinvention, may be part of an operating system or a specific application,component, program, module, object, or sequence of instructions. Thecomputer program of the present invention typically is comprised of amultitude of instructions that will be translated by the native computerinto a machine-readable format and hence executable instructions. Also,programs are comprised of variables and data structures that eitherreside locally to the program or are found in memory or on storagedevices. In addition, various programs described hereinafter may beidentified based upon the application for which they are implemented ina specific embodiment of the invention. However, it should beappreciated that any particular program nomenclature that follows isused merely for convenience, and thus the invention should not belimited to use solely in any specific application identified and/orimplied by such nomenclature.

FIG. 1 is a block diagram that illustrates a client server view ofcomputing environment 100, according to one embodiment of the invention.As shown, computing environment 100 includes client computers 110,network 115 and server system 120. In one embodiment, the computersystems illustrated in environment 100 may include existing computersystems, e.g., desktop computers, server computers, laptop computers,tablet computers, and the like. The computing environment 100illustrated in FIG. 1, however, is merely an example of one computingenvironment. Embodiments of the present invention may be implementedusing other environments, regardless of whether the computer systems arecomplex multi-user computing systems, such as a cluster of individualcomputers connected by a high-speed network, single-user workstations,or network appliances lacking non-volatile storage. Further, thesoftware applications illustrated in FIG. 1 and described herein may beimplemented using computer software applications executing on existingcomputer systems, e.g., desktop computers, server computers, laptopcomputers, tablet computers, and the like. However, the softwareapplications described herein are not limited to any currently existingcomputing environment or programming language, and may be adapted totake advantage of new computing systems as they become available.

As shown, each client computer 110 includes a central processing unit(CPU) 102, which obtains instructions and data via a bus 111 from clientmemory 107 and client storage 104. CPU 102 is a programmable logicdevice that performs all the instruction, logic, and mathematicalprocessing in a computer. Client storage 104 stores application programsand data for use by client computer 110. Client storage 104 includeshard-disk drives, flash memory devices, optical media and the like.Client computer 110 is operably connected to the network 115.

Client memory 107 includes an operating system (OS) 108 and a clientapplication 109. Operating system 108 is the software used for managingthe operation of the client computer 110. Examples of OS 108 includeUNIX, a version of the Microsoft Windows® operating system, anddistributions of the Linux® operating system. (Note, Linux is atrademark of Linus Torvalds in the United States and other countries.)

In one embodiment, client application 109 provides a software programthat allows a user to connect to a virtual world 130, and onceconnected, to perform various user actions. Such actions may includeexploring virtual locations, interacting with other avatars, andinteracting with virtual objects. Further, client application 109 may beconfigured to generate and display a visual representation of the userwithin the immersive environment, generally referred to as an avatar.The avatar of the user is generally visible to other users in thevirtual world, and the user may view avatars representing the otherusers. Furthermore, the client application 109 may also be configured togenerate and display the immersive environment to the user and totransmit the user's desired actions to virtual world 130 on server 120.Such a display may include content from the virtual world determinedfrom the user's line of sight at any given time. For the user, thedisplay may present a third-person perspective, meaning a view from alocation other than that of the user's avatar, and which may include theimage of the user's avatar within the virtual world. Alternatively, thedisplay may present a first-person perspective, meaning a view of thevirtual world as would be seen through the eyes of the avatarrepresenting the user.

By way of example, FIG. 2 illustrates a user display 200 for a userparticipating in a virtual world, according to one embodiment of theinvention. In particular, FIG. 2 represents a third-person viewpresented to a user participating in a virtual world. In this example,the user is represented by avatar 250, and is present in a virtual townsquare. The user may interact with elements of the virtual world,including an avatar 260, which represents another user. For example, theuser may control avatar 250 to initiate a contact with avatar 260, thusenabling the user to communicate with the other user.

Returning to FIG. 1, the user may view the virtual world using a displaydevice 140, such as an LCD or CRT monitor display, and interact with theclient application 109 using input devices 150. Further, in oneembodiment, the user may interact with client application 109 andvirtual world 130 using a variety of virtual reality interaction devices160. For example, the user may don a set of virtual reality goggles thathave a screen display for each lens. Furthermore, the goggles could beequipped with motion sensors that cause the view of the virtual worldpresented to the user to move based on the head movements of theindividual. As another example, the user could don a pair of glovesconfigured to translate motion and movement of the user's hands intoavatar movements within the virtual reality environment.

In one embodiment, the client application 109 may be further configuredto provide a music soundtrack to a user of the virtual world 130. Thesoundtrack may be played to the user through an audio output device 170,which may represent, e.g., a stereo system, computer speakers,headphones, and the like. Of course, embodiments of the invention arenot limited to these examples and one of ordinary skill in the art willreadily recognize that the invention may be adapted for use with avariety of devices configured to present the virtual world to the userand to translate movement/motion or other actions of the user intoactions performed by the avatar representing that user within thevirtual world 130.

As shown, client storage 104 may include music preferences 105. In oneembodiment, music preferences 105 may represent song preferences of auser of client application 109 on a particular client 110. For example,music preferences 105 may include a history of songs played as asoundtrack during past interactions with the virtual world 130. Further,music preferences 105 may include a user rating for each song, meaningan indication of a degree of preference for the particular song. Musicpreferences 105 may further describe the user's preferences in terms ofmusical properties, such as song genres, rhythms, tempos, lyrics,instruments, and the like.

In one embodiment, music preferences 105 may include data that ismanually entered and/or edited by the user. For example, the clientapplication 109 may provide the user with a graphical user interface(GUI) for manually editing the music preferences 105. In anotherembodiment, music preferences 105 may be generated based on userinteractions with songs played while the user is in the virtual world130. That is, as the user interacts with songs played as a soundtrack,the music preferences 105 may be automatically modified according topreferences revealed by the interactions. For example, in response tointeractions such as selecting a song, repeating a song, turning up thevolume, etc., the client application 109 may modify the musicpreferences 105 to indicate that the user likes that song. In anotherexample, in response to user interactions such as skipping a song,turning down the volume, etc., the client application 109 may modify themusic preferences 105 to indicate that the user dislikes that song.

In one embodiment, music preferences 105 may store data describing userpreferences in terms of the user's situational context within thevirtual world 130. That is, the music preferences 105 may storeassociations between song preferences and factors describing the user'ssituation while in the virtual world 130. One such situational factormay be the user's current activity within the virtual world 130. Forexample, if a user frequently selects a particular song while playing avirtual sport, the music preferences 105 may be modified to store apositive association between the selected song and the activity ofplaying the virtual sport. In one embodiment, the modifications of themusic preferences 105 may be performed by the client application 109.

Another situational factor may be the user's current companions withinthe virtual world 130. For example, if the user always skips a certainsong while in the company of a particular business associate, the musicpreferences 105 may be modified to store a negative association betweenthe song and the business associate. In another example, if a particularsong was playing during a first meeting between the user and a casualacquaintance, the music preferences 105 may be modified to store amnemonic relationship between the song and the acquaintance. Thereafter,the song may be played when the user again encounters the acquaintance,thus serving as a reminder of the context of the first meeting betweenthem. Yet another situational factor may be the user's profile, meaninga general description of the primary user's intended activity or mode ofinteracting while in the virtual world 130. For example, a user engagedin business activities may use an “At Work” profile, and may prefer tolisten to jazz while in using that profile. Yet another situationalfactor may be the user's location within the virtual world 130. Forexample, a user may prefer to listen to quiet music while visiting avirtual library, but may prefer to listen to fast-paced music whilevisiting a virtual nightclub.

In one embodiment, the music preferences 105 may store associationsbetween songs and user moods. That is, the user's mood at a given timemay be determined, and then may be associated to the user's songpreferences, as indicated by contemporaneous user interactions (e.g.,playing a song, skipping a song, etc.). The user's mood may bedetermined by, e.g., searching the user's communications for keywords orphrases that have been predefined as indicating a particular mood. Forexample, assume that the user states “My friend and I had a fight, andnow I am angry.” In this situation, the client application 109 may beconfigured to compare the keywords “fight” and “angry” to predefinedassociations of keywords and moods, and thus to determine that theuser's current mood is one of anger. Alternatively, the user's mood maybe determined by other techniques. For example, the user's mood may bedetermined by measuring physical characteristics of the user that mightindicate the user's mood (e.g., heart rate, blood pressure, blink rate,voice pitch and/or volume, etc.), by user interactions (e.g., virtualfighting, virtual gestures, etc.), or by a user setting or commandintended to indicate mood.

In one embodiment, server system 120 includes a CPU 122, which obtainsinstructions and data via a bus 121 from memory 126 and storage 124. Theprocessor 122 could be any processor adapted to support the methods ofthe invention. The memory 126 is any memory sufficiently large to holdthe necessary programs and data structures. Memory 126 could be one or acombination of memory devices, including Random Access Memory,nonvolatile or backup memory, (e.g., programmable or Flash memories,read-only memories, etc.). In addition, memory 126 and storage 124 maybe considered to include memory physically located elsewhere in a server120, for example, on another computer coupled to the server 120 via bus121. Server 120 may be operably connected to the network 115, whichgenerally represents any kind of data communications network.Accordingly, the network 115 may represent both local and wide areanetworks, including the Internet.

Memory 126 includes virtual world 130 and a playlist engine 128. In oneembodiment, virtual world 130 may be a software application that allowsa user to explore and interact with an immersive environment. Theplaylist engine 128 may represent a software application configured togenerate playlists of songs for use as a soundtrack to accompany the useof the virtual world 130. The generated playlists may be provided to theclient application 109, which may then play the songs included in theplaylists to the user while in the virtual world 130. In one embodiment,the playlists may consist of lists of song identifiers (e.g., songnames). The client application 109 may be configured to retrieve audiocontent matching the song identifiers included in the playlists. Inanother embodiment, the playlists may include audio content of songs,which may be played by the client application 109. Such audio contentmay include, e.g., MP3 files, streaming audio, analog audio, or anyother audio data format.

In one embodiment, the playlist engine 128 may be configured to generateplaylists based on the music preferences 105 of a given user. That is,the playlist engine 128 may analyze the music preferences 105 stored onthe user's client computer 110 in order to generate a playlist that isadapted to the current situational context of the user within thevirtual world 130, including the user's activity, profile, location,companions, and the like. For example, in the case of a user that iscurrently playing a virtual sport, the playlist engine 128 may analyzethe music preferences 105 to determine whether the user has a positiveassociation between any songs and the activity of playing the virtualsport. If so, the playlist engine 128 may generate a playlist thatincludes those songs. The generated playlist may then be provided to theclient application 109, and may be played to the user through the audiooutput device 170. Alternatively, the playlist engine 128 may generate aplaylist from songs matching musical properties specified in the musicpreferences 105. Such musical properties may include, for example, songgenres, rhythms, tempos, lyrics, instruments, and the like.

In one embodiment, the playlist engine 128 may be further configured togenerate a playlist based on the user's mood or emotional state. Morespecifically, the playlist engine 128 may be configured to receive anindication of the user's current mood from the client application 109,to compare the user's mood to any associations stored in the musicpreferences 105, and to generate a playlist that corresponds to theindicated mood. As described above, the client application 109 maydetermine the user's mood by analyzing keywords or phrases in the user'scommunications, physical characteristics of the user, user interactions,user commands, and the like. The playlist engine 128 may be furtherconfigured to generate playlists for the purpose of trying to change theuser's mood. That is, if the user's current mood does not match a targetmood, the playlist engine 128 may generate a playlist that includessongs intended to change the user's mood. The target mood may be, e.g.,a default setting of the virtual world 130, or a user-configurablesystem setting in the client application 109. For example, assume theuser has configured a system setting to specify a preference for a happymood. Assume further that the client application 109 has determined thatthe user is currently in a sad mood. If this situation, the playlistengine 128 may be configured to generate a playlist that includes songspredefined as likely to induce a happy mood. Alternatively, the playlistengine 128 may be configured to randomly change the genre of songsincluded in a playlist, and to determine whether the user's mood haschanged in response.

In one embodiment, the playlist engine 128 may be configured to generateplaylists based on the default playlists 125 included in storage 124.The default playlists 125 may be used by any user of the virtual world130, and may be predefined to correspond to specific situations withinthe virtual world 130. For example, default playlists 125 may bespecified according to the user's activity, profile, location, mood,speech (including text messages initiated by the user), etc. Theplaylist engine 128 may use a default playlist 125 as a starting pointfor generating a customized playlist for a given user and situationcontext. Further, the default playlists 125 may be used in situationswhere there is insufficient user-specific data to generate a playlist.Optionally, the playlist engine 128 may compare the user's mood to thedefault playlists 125. For example, if the music preferences 105 do notinclude any associations to the user's current mood, then the playlistengine 128 may instead use associations to moods specified in thedefault playlists 125 to generate a playlist.

In one embodiment, the playlist engine 128 may be configured to generateplaylists based on topics discussed in the user's communications. Thatis, the client application 109 may be configured to determine a topic ofconversation by searching for keywords or phrases included in the user'scommunications, and the playlist engine 128 may be configured to thengenerate a playlist including songs that are related to the determinedtopics. For example, in the event that the user is discussing aparticular artist with another user within the virtual world 130, theplaylist engine 128 may then generate a playlist that includes songsperformed by the discussed artist. Thus, the user(s) may continue theconversation accompanied by a soundtrack of such songs.

The playlist engine 128 may be further configured to generate playlistsbased on changes in the user's activities. For example, in the eventthat the user is walking in the virtual world 130, and then begins torun, the playlist engine 128 may modify a playlist from quiet songs tosongs having a faster tempo and/or higher energy level. Further, in theevent of such changes to the types of songs included in a playlist, theplaylist engine 128 may be configured to provide a smooth transitionfrom the first type to the second type. For example, in order to ensurethat a transition in a playlist is not excessively abrupt, the playlistengine 128 may include one or more transition songs to provide a smoothtransition from slow songs to fast songs. The playlist engine 128 may befurther configured to generate playlists for use during specific eventsor activities in the virtual world 130. For example, an organizer of apublic event may specify particular songs or genres to be played tousers participating in the event. In such a case, the playlist engine128 may be configured to generate a playlist based on the specifiedsongs or genres.

In one embodiment, the playlist engine 128 may be configured to evaluatethe above-described factors alone or in combination, or by weighing eachone in order of importance and/or user preference. Additionally, othersituational characteristics may also be evaluated by the playlist engine128, as may be suited to a particular application.

Of course, the embodiments described above are intended to beillustrative, and are not limiting of the invention. Other embodimentsare broadly contemplated. For example, music preferences 105 may bestored on server 120, rather than on client computer 110. In anotherexample, the client application 109 and/or the playlist engine 128 maybe replaced by separate components, such as a component resident oneither the client computer 110 or the server 120, a component configuredto determine the user's mood, a component to generate playlists, etc.

FIG. 3 is a flow diagram illustrating a method 300 for generating musicpreferences of a user of a virtual world, according to one embodiment ofthe invention. Specifically, the steps of method 300 may be assumed tobe performed by the playlist engine 128 and/or the client application109 illustrated in FIG. 1. However, persons skilled in the art willunderstand that any system configured to perform the steps of method300, in any order, is within the scope of the present invention.

The method 300 begins at step 310, by receiving a user interaction witha song. The song may be played as part of the user's soundtrack of avirtual world (e.g., virtual world 130 illustrated in FIG. 1). Thereceived interaction may include any actions that indicate a userpreference for the song, such as selecting the song, skipping the song,changing the volume, and the like. At step 320, the user's locationwithin the virtual world may be determined. In one embodiment, theuser's location may be the virtual location of the user's avatar. Forexample, referring to the situation illustrated in FIG. 2, the currentlocation of the user may be that of the user's avatar 260, namely avirtual town square. The user's location may be described using, e.g.,the user's location coordinates, the user's position relative to knownlandmarks, etc.

At step 330, a user profile may be determined. The user profile may beselected by the user, and may indicate the user's current intended modeof interacting with the virtual world. For example, a user engaged inbusiness activities may select an “At Work” profile. At step 340, theuser's current activity in the virtual world may be determined. Forexample, the determined user activities may include walking, running,talking, playing, etc. At step 350, the user's companions may bedetermined. For example, the playlist engine 128 may be configured toidentify other users of the virtual world 130 that are in the company ofthe current user (i.e., the user corresponding to the music preferences105).

At step 360, the user's current mood may be determined. In oneembodiment, the user's mood may be determined by searching for keywordsor phrases in the user's communications that are predefined to indicateparticular moods. For example, if the user writes “I am happy” in a textcommunication, the client application 109 may detect the word “happy,”and determine that the user is in a happy mood. Alternatively, theuser's mood may be determined by using other suitable techniques, suchas measuring physical characteristics of the user, detecting userinteractions, user commands to indicate mood, and the like.

At step 370, the data collected in step 310-360 may be stored as a userpreference for a particular song. For example, the client application109 may modify the music preferences 105 to store a record of the userinteraction received at step 310, including an identifier for the songand a description of the nature of the interaction (i.e., whether theinteraction was positive or negative). Further, the stored record mayinclude the situational characteristics determined at steps 320-360(i.e., the user's activity, profile, location, companions, and mood).That is, the music preferences 105 may store the user's preference for asong under particular circumstances occurring in the virtual world 130.At step 380, the music preferences may be modified by the user directly.For example, the client application 109 may be configured to provide theuser with a GUI for manually specifying music preferences while in thevirtual world 130. After step 380, the method 300 terminates.

In one embodiment, steps 310-380 may be performed by the playlist engine128 and/or the client application 109 illustrated in FIG. 1. Of course,method 300 is provided for illustrative purposes only, and is notlimiting of the invention. It is contemplated that the steps of method300 may be modified to incorporate other data describing userinteractions into the user index. Such modifications may be made to suitparticular situations, and are thus contemplated to be in the scope ofthe invention.

FIG. 4 is a flow diagram illustrating a method 400 for generatingplaylists for users of a virtual world, according to one embodiment ofthe invention. For the sake of illustration, method 400 is described inconjunction with the system of FIG. 1. Specifically, the steps of method400 may be assumed to be performed by the suggestion engine 128illustrated in FIG. 1. However, persons skilled in the art willunderstand that any system configured to perform the steps of method400, in any order, is within the scope of the present invention.

The method 400 begins at step 410, where the virtual-world softwaredetects a triggering event to provide a playlist to a user of a virtualworld (e.g., virtual world 130). The triggering event may be an actionor movement performed by the user. For example, assume the user joins amulti-player game taking place in the virtual world 130. In such a case,the action of joining the game may trigger the generation of a playlistsuitable for listening by the user during the game. In another example,the triggering event may be a user request for a new playlist.

Generally, at steps 420-460, the user's current situational context maybe determined. At step 420, the user's location may be determined. Forexample, the playlist engine 128 may determine the user's locationwithin the virtual world 130. At step 430, the user's current profilemay be determined. For example, the playlist engine 128 may determinethat the user's profile is “Gaming,” meaning the user is engaged inplaying virtual games. At step 440, the user's current activity may bedetermined. For example, the determined user activities may includewalking, running, talking, playing, etc. At step 450, the user'scompanions may be determined. For example, the playlist engine 128 maybe configured to identify other users that are accompanying the currentuser in the virtual world 130. At step 460, the user's current mood maybe determined. As described above, the user's mood may be determinedusing the techniques such as keyword analysis, measurement of physicalcharacteristics of the user, analysis of user interactions, and thelike. At step 470, other situational factors may be determined. Forexample, the playlist engine 128 may determine factors such as topicsdiscussed in the user's communications, changes in the user'sactivities, the user's attendance at a virtual event having specifiedplaylists, and the like.

At step 480, the user's current situational context may be matched tostored data describing the user's music preferences. In one embodiment,the data describing the user's music preferences may be generated by themethod 300 described above, and may include associations of songs toparticular situational factors such as location, profile, activity,companions, mood, and the like. For example, the playlist engine 128 maybe configured to match the situational factors (determined at steps420-470) to the music preferences 105 stored in the client storage 104.Each factor may be considered alone or in combination, or by weighingeach one in order of importance and/or user preference. At step 490, aplaylist may be generated. For example, the playlist engine 128 maygenerate a playlist from the songs specified in the music preferences105 that best match the situational factors determined at steps 420-470.Optionally, the generated playlist may be composed based on musicalproperties specified in the music preferences 105, such as preferredgenres, rhythms, tempos, lyrics, instruments, etc. Further, the playlistengine 128 may generate playlist that includes transition songs tominimize an abrupt transition from an earlier playlist. Furthermore, theplaylist engine 128 may generate a playlist that includes a songintended to act as a mnemonic reminder of an earlier situation (e.g., anencounter with an acquaintance in the virtual world 130).

While the foregoing is directed to embodiments of the present invention,other and further embodiments of the invention may be devised withoutdeparting from the basic scope thereof, and the scope thereof isdetermined by the claims that follow.

1. A computer-implemented method, comprising: monitoring a userinteracting with the virtual environment through an avatar; in responseto detecting a triggering event, determining one or more characteristicsof a situational context of the avatar within the virtual environment;based on the determined one or more characteristics, generating aplaylist; and providing the user with one or more songs included in theplaylist.
 2. The computer-implemented method of claim 1, wherein the oneor more characteristics comprise at least one of: (i) a position of anavatar of the user within the virtual environment, (ii) one or moreactions performed by the user within the virtual environment, (iii) aprofile of the user, and (iv) one or more companions of the user withinthe virtual environment.
 3. The computer-implemented method of claim 1,wherein the one or more characteristics comprise one or more indicationsof the current mood of the user.
 4. The computer-implemented method ofclaim 3, wherein the one or more indications of the current mood of theuser comprise one or more words included in the user's communications.5. The computer-implemented method of claim 1, wherein generating theplaylist comprises: identifying one or more songs matching the one ormore characteristics; and adding the identified one or more songs to theplaylist.
 6. The computer-implemented method of claim 5, whereinidentifying one or more songs matching the one or more characteristicsis performed using a stored set of associations between songs andcharacteristics of situational contexts.
 7. The computer-implementedmethod of claim 1, wherein the one or more characteristics comprise atleast one of: (i) one or more topics included in a communication of theuser, (i) one or more changes in the activities of the user, and (iii)participation in an event having a predefined list of songs.
 8. Acomputer-readable storage medium including a program, which whenexecuted on a processor performs an operation, the operation comprising:monitoring a user interacting with the virtual environment through anavatar; in response to detecting a triggering event, determining one ormore characteristics of a situational context of the avatar within thevirtual environment; based on the determined one or morecharacteristics, generating a playlist; and providing the user with oneor more songs included in the playlist.
 9. The computer-readable storagemedium of claim 8, wherein the one or more characteristics comprise atleast one of: (i) a position of an avatar of the user within the virtualenvironment, (ii) one or more actions performed by the user within thevirtual environment, (iii) a profile of the user, and (iv) one or morecompanions of the user within the virtual environment.
 10. Thecomputer-readable storage medium of claim 8, wherein the one or morecharacteristics comprise one or more indications of the current mood ofthe user.
 11. The computer-readable storage medium of claim 10, whereinthe one or more indications of the current mood of the user comprise oneor more words included in the user's communications.
 12. Thecomputer-readable storage medium of claim 8, wherein generating theplaylist comprises: identifying one or more songs matching the one ormore characteristics; and adding the identified one or more songs to theplaylist.
 13. The computer-readable storage medium of claim 12, whereinidentifying one or more songs matching the one or more characteristicsis performed using a stored set of associations between songs andcharacteristics of situational contexts.
 14. The computer-readablestorage medium of claim 8, wherein the one or more characteristicscomprise at least one of: (i) one or more topics included in acommunication of the user, (i) one or more changes in the activities ofthe user, and (iii) participation in an event having a predefined listof songs.
 15. A system, comprising: a database; a processor; and amemory containing a program, which when executed by the processor isconfigured to perform an operation, the operation comprising: monitoringa user interacting with the virtual environment through an avatar; inresponse to detecting a triggering event, determining one or morecharacteristics of a situational context of the avatar within thevirtual environment; based on the determined one or morecharacteristics, generating a playlist; and providing the user with oneor more songs included in the playlist.
 16. The system of claim 15,wherein the one or more characteristics comprise at least one of: (i) aposition of an avatar of the user within the virtual environment, (ii)one or more actions performed by the user within the virtualenvironment, (iii) a profile of the user, and (iv) one or morecompanions of the user within the virtual environment.
 17. The system ofclaim 15, wherein the one or more characteristics comprise one or moreindications of the current mood of the user.
 18. The system of claim 17,wherein the one or more indications of the current mood of the usercomprise one or more words included in the user's communications. 19.The system of claim 15, wherein generating the playlist comprises:identifying one or more songs matching the one or more characteristics;and adding the identified one or more songs to the playlist.
 20. Thesystem of claim 19, wherein identifying one or more songs matching theone or more characteristics is performed using a stored set ofassociations between songs and characteristics of situational contexts.21. The system of claim 15, wherein the one or more characteristicscomprise at least one of: (i) one or more topics included in acommunication of the user, (i) one or more changes in the activities ofthe user, and (iii) participation in an event having a predefined listof songs.